dc6bbcc7a8774afec9aaa96e4344a56eb9340ae5,plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/view/CDOViewImpl.java,CDOViewImpl,setBranchPoint,#CDOBranchPoint#IProgressMonitor#,233
Before Change
EclipseMonitor.convert(progressMonitor));
basicSetBranchPoint(branchPoint);
CDOBranch branch = branchPoint.getBranch();
try
{
After Change
TRACER.format("Changing view target to {0}", branchPoint); //$NON-NLS-1$
}
Map<CDOID, InternalCDORevision> oldRevisions = CDOIDUtil.createMap();
List<CDORevisionKey> allChangedObjects = new ArrayList<CDORevisionKey>();
List<CDOIDAndVersion> allDetachedObjects = new ArrayList<CDOIDAndVersion>();
List<InternalCDOObject> invalidObjects = getInvalidObjects(branchPoint);
for (InternalCDOObject object : invalidObjects)
{
InternalCDORevision revision = object.cdoRevision();
if (revision != null)
{
oldRevisions.put(object.cdoID(), revision);
}
}
CDOSessionProtocol sessionProtocol = session.getSessionProtocol();
sessionProtocol.switchTarget(viewID, branchPoint, invalidObjects, allChangedObjects, allDetachedObjects,
EclipseMonitor.convert(progressMonitor));
basicSetBranchPoint(branchPoint);
try
{
CDOStateMachine.SWITCHING_TARGET.set(Boolean.TRUE);
ViewInvalidationData invalidationData = new ViewInvalidationData();
invalidationData.setLastUpdateTime(UNSPECIFIED_DATE);
invalidationData.setBranch(branchPoint.getBranch());
invalidationData.setAllChangedObjects(allChangedObjects);
invalidationData.setAllDetachedObjects(allDetachedObjects);
invalidationData.setOldRevisions(oldRevisions);
invalidationData.setClearResourcePathCache(true);
doInvalidate(invalidationData);
}